const http = require('http');
const { uuid } = require('./util');

// 存储 session 数据，内存存储
// 缺点：服务器重启，用户的会话信息就丢失啦
const session = {};

const app = http.createServer((req, res) => {
    // 网站图标请求，忽略掉
    if (req.url === '/favicon.ico') return;

    // 设置 session
    if (req.url === '/setSession') {
        // 生成唯一标识符
        const sid = uuid();

        // 保存会话信息
        session[sid] = {
            uid: String(Math.random()).substr(2, 3),
        };

        // 把 sid 保存到 cookie 中
        res.setHeader('Set-Cookie', `sid=${sid}`);
        res.end();
        return;
    }

    // 查看 session 中的内容
    if (req.url === '/session') {
        // 根据 cookie 中保存的 sid 来查看
        console.log('req.headers.cookie', req.headers.cookie);
        //.test(req.headers.cookie);
        const reg = new RegExp(`sid=([^;]+)[;\s]?`);
        const result = reg.exec(req.headers.cookie);
        if (result) {
            const user = session[result[1]];
            console.log('user', user);
        } else {
            res.setHeader('Content-Type', 'text/html;charset=utf8');
            res.end('你还没登录');
        }
        res.end();
        return;
    }

    // 其他请求不处理
    res.end('404 Not Found');
});

app.listen(3000);
